package vista;


import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

import modelo.DetalleProducto;

public class VentanaDetalleProductoTablaModel extends AbstractTableModel {

	private static String[] titulos = {"codIngrediente","Ingrediente","Cantidad"};
	private List<DetalleProducto> listaIngred = new ArrayList<DetalleProducto>();
	
	public VentanaDetalleProductoTablaModel(List<DetalleProducto> listaIngred) {
		super();
		this.listaIngred = listaIngred;
		this.fireTableDataChanged();
	}

	@Override
	public int getColumnCount() {		
		return titulos.length;
	}

	@Override
	public int getRowCount() {		
		return listaIngred.size();
	}

	@Override
	public Object getValueAt(int rowIndex, int columnIndex) {
		DetalleProducto detProducto = listaIngred.get(rowIndex); 
		switch (columnIndex) {
			case 0: return detProducto.getCodIngrediente();
			case 1: return detProducto.getDescripcionIng();
			case 2: return detProducto.getCantidadIng();
			}
		return null;
	}

	@Override
	public String getColumnName(int column) {
		return titulos[column];
	}	
	
	//Para que los campos de la columna cantidad de la tabla sean modificables
	public boolean isCellEditable(int row, int column) {
		if (column == 3)
	return true;
		return false;
    }
	
    public void setValueAt(Object value, int row, int column) {
        DetalleProducto detProducto = listaIngred.get(row);
           switch (column) {
               case 0:
            	   detProducto.setCodIngrediente((String)value);
                  break;
               case 1:
            	   detProducto.setDescripcionIng((String)value);
                  break;
               case 2:
            	   detProducto.setCantidadIng(Float.parseFloat((String)value));
                  break;
               default:
                  System.out.println("Indice Invalido");
           }
           fireTableCellUpdated(row, column);
    }
}